//
//  MOPickerViewController.m
//  MOED, Version 1.0
//
//  http://moed.googlecode.com/
//
//  Copyright (c) 2011, Eternity Technologies.
//  All rights reserved.
// 
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions are met:
//
//    * Redistributions of source code must retain the above copyright
//      notice, this list of conditions and the following disclaimer.
//    * Redistributions in binary form must reproduce the above copyright
//      notice, this list of conditions and the following disclaimer in the
//      documentation and/or other materials provided with the distribution.
//    * Neither the name of the Eternity Technologies nor the
//      names of its contributors may be used to endorse or promote products
//      derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY ETERNITY TECHNOLOGIES ''AS IS'' AND ANY
//  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
//  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
//  DISCLAIMED. IN NO EVENT SHALL ETERNITY TECHNOLOGIES BE LIABLE FOR ANY
//  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
//  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
//  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
//  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
//  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
//  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//

#import "MOPickerViewController.h"
#import "MOEditorTableViewCell.h"
#import "MOFormField.h"

@implementation MOPickerViewController

@synthesize managedObject;
@synthesize formField;
@synthesize tableViewCell;

@synthesize optionsPickerView;

- (void) viewDidAppear:(BOOL)animated {
	[super viewDidAppear:animated];
	self.title = formField.labelText;
	self.navigationController.toolbarHidden = YES;
	[self.optionsPickerView reloadAllComponents];
}

- (void)dealloc {
	[managedObject release];
	[formField release];
	[tableViewCell release];
	[optionsPickerView release];
    [super dealloc];
}


#pragma mark -
#pragma mark Picker View DataSource

- (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView {
	return [formField.options count];
}

- (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
	return [[formField.options objectAtIndex:component] count];
}

- (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
	return [[formField.options objectAtIndex:component] objectAtIndex:row];
}

- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
	
	NSMutableString *pickerViewString = [[NSMutableString alloc] initWithCapacity:pickerView.numberOfComponents];
	for(int componentIndex = 0; componentIndex < pickerView.numberOfComponents; componentIndex++) {
		/* Get the right array for the component and the value for the selected index */
		[pickerViewString appendString:[[formField.options objectAtIndex:componentIndex] 
										objectAtIndex:[pickerView selectedRowInComponent:componentIndex]]];
	}
	
	tableViewCell.textField.text = pickerViewString;
	[managedObject setValue:pickerViewString forKey:formField.managedObjectKey];
	[pickerViewString release];
	
}


@end
